©PaperWeekly 原创 · 作者 | 苏剑林单位 | 追一科技研究方向 | NLP、神经网络
位置编码是 Transformer 中很重要的一环,在《让研究人员绞尽脑汁的 Transformer 位置编码》 中我们就总结了一些常见的位置编码设计。大体上,我们将 Transformer 的位置编码分为“绝对位置编码”和“相对位置编码”两类,其中“相对位置编码”在众多 NLP/CV 的实验表现相对来说更加好些。
然而,我们可以发现,目前相对位置编码几乎都是在 Softmax 之前的 Attention 矩阵上进行操作的,这种施加方式实际上都存在一个理论上的缺陷,使得 Transformer 无法成为“万能拟合器”。本文就来分析这个问题,并探讨一些解决方案。
顾名思义,位置编码就是用来给模型补充上位置信息的。那么,如何判断一个模型有没有足够的识别位置的能力呢?笔者之前曾构思过一个简单的探针实验:
对于一个有识别位置能力的模型,应该有能力准确实现如下映射
也就是说,输入 个 0,能有序地输出位置编号 。这个探针实验的思想很简单,即模型如果有能力做到这一点,说明识别位置是模型自身具备的能力,跟外部输入无关,这正是我们想要的。不难发现,绝对位置由于是直接施加在输入上的,所以它很容易能够完成探针测试。
然而,当笔者带着这个简单的探针实验去思考带有相对位置编码的 Transformer 模型时,却发现它们几乎都不能完成上述任务。
具体来说,除了《Self-Attention with Relative Position Representations》 [1] 所提出的设计外,其余所有相对位置编码(包括笔者所提的 RoPE )都只修改了 Softmax 前的 Attention 矩阵,那么带有相对位置信息的 Attention 矩阵依然是一个概率矩阵(即每一行求和等于 1)。
另一方面,对于 Transformer 模型来说,Token之间的交互的唯一来源是 Self Attention 的 这一步,或者写成 。相同的输入意味着每个 都是相同的,所以
这意味着每个 也是相同的。换句话说,模型的每个位置自始至终都输出相同的结果,所以模型根本不可能输出各不相同的 。 类似的发现也出现在最近的论文《Your Transformer May Not be as Powerful as You Expect》 [2] 中,作者构建了略有不同的例子来演示相对位置编码 Transformer 的拟合能力缺陷问题,两者异曲同工、不谋而合了。
稍加思考就可以发现,其实问题主要出在 Attention 矩阵的每一行求和等于 1,要解决这个问题,想办法打破这个约束就行了。为此,《Your Transformer May Not be as Powerful as You Expect》 [2] 在其发现之上进一步提出了如下设计
其中 是一个可训练的参数矩阵, 是逐位相乘(Hadamard 积 [3] )。为了使得整个模型依然只包含相对位置信息(因为本文就是讨论相对位置编码 Transfomrer 的缺陷),我们要约束 为 Toeplitz 矩阵 [4] ,即 。 有了 的加入, 作为一个整体,每一行的和显然不一定为 1,从而打破了这个限制,因此是可以解决问题的。但这样一来,引入了新的参数矩阵不说,由于 本身是有限大小的,所以它就不能很好地支持变长输入(或者矩阵 相应地要做一些截断,即 的形式),总的来说显得不够简洁优雅。
再次回到问题所在:Attention 矩阵的每一行求和等于 1。是什么操作导致了这一现象呢?答案很显然,是 Softmax:
这里的 是 Softmax 前的矩阵。很明显,就是“除以 ”这一步导致了 ,那么一个很直接的想法就是: 事实上确实可以!实验结果显示,不除以该分母的 Transformer 确实能成功地完成前述探针测试。此时就不得不感概一下 GAU 的“先见之明”了,它提出的新式 Attention 直接是 激活然后简单除以 来归一化,避免了 ,从而增强了模型的理论能力(当然也许作者根本没想那么多,是笔者想象的成分居多)。
让我们再发散一下脑洞。从范数的角度来看, 实际上是向量 的 范数,所以 Softmax 实际上就是向量的 的 归一化操作,那么要避免 ,又有保留归一化,换成其他的归一化操作是否可以呢?比如 归一化:
经过笔者测试,这种 归一化的 Attention,确实能成功完成探针实验。那么,这个改动对我们更关心的 NLP 预训练场景有没有帮助呢?笔者也做了相应的对比实验,结果是分两部分: 1、对于标准的 Attention + FFN 组合,应用 归一化 Attention 之前要缩小一下 Attention 的 的初始方差,实验结果则是略差于常规的 归一化 Attention; 2、对于全 GAU 的架构,可以直接应用 归一化 Attention,不需要改动初始化,实验结果则是略优于常规的 归一化 Attention。 两者的差别大概是源于它们本身的初始化方式不同,在标准的 Attention + FFN 组合中,初始 Attention 矩阵接近一个均匀矩阵(每个数都相同),而在《门控注意力单元(GAU)还需要 Warmup 吗?》 [5] 我们则分析过,GAU 的初始 Attention 矩阵更接近一个单位阵(的若干倍)。
再次纵观前文,我们发现是因为“每个 都是相同的”,所以“ 的模型无法完成探针实验”。但如果每个 不全相同呢? 我们知道,从 BERT 开始,主流的 Transformer 模型都是像“[CLS] [SEP]”设计输入的,也就是在输入前后会附加一些标记性的 Token,如果我们将这些标记 Token 当作模型的一部分而不是输入(也就是说输入“[CLS] [SEP]”而不是全 0),那么是否有可能完成探针呢? 笔者也对此做了实验,发现对输入补充上标记行 Token 后,不需要对相对位置编码 Transformer 的其他部分做修改,确实也能够完成探针实验。这结果就有点啼笑皆非了,原来 BERT 的作者们也很有“先见之明”啊,所添加的特殊 Token [CLS]、[SEP] 还有辅助定位的作用,我们分析那么久的理论缺陷,居然就这样被两个特殊 Token 解决了。
当然,这也不意味着我们前面的思考全无意义。比如对 GAU 模型来说,Attention 换用 归一化确确实实有加快收敛、轻微提升效果的作用。此外,既然可以接受 归一化,那么 是不是还可以换成一般的激活函数(比如去掉非负性约束)呢?笔者也简单做了“ 归一化”的实验,发现有一定的可行性。从这个角度来看, 归一化下的 Attention 实际上有更多的拓展空间。
本文分析了相对位置编码 Transformer 的一个隐含缺陷,并探讨了相应的对策,从中引申出关于 Attention 矩阵的非负性、归一化方式的思考。
[1] https://arxiv.org/abs/1803.02155 [2] https://arxiv.org/abs/2205.13401
[3] https://en.wikipedia.org/wiki/Hadamard_product_(matrices)
[4] https://en.wikipedia.org/wiki/Toeplitz_matrix
[5] https://kexue.fm/archives/8990
#投 稿 通 道 #
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读 ,也可以是学术热点剖析 、科研心得 或竞赛经验讲解 等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品 ,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬 ,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱: hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02 )快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」 也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」 订阅我们的专栏吧